/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */
package br.jm.acionista.entity;

import br.jm.acionista.filter.ConfiguraCampoAnnotation;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import javax.validation.constraints.NotNull;

/**
 *
 * @author joao
 */
@Entity
@Table(name = "cautela_acionista", catalog = "acionista", schema = "dbo")
@NamedQueries({
    @NamedQuery(name = "CautelaAcionista.findAll", query = "SELECT c FROM CautelaAcionista c")})
public class CautelaAcionista implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @NotNull
    @Column(name = "id_Cautela_acionista", nullable = false)
    private Integer idCautelaacionista;
    @Column(name = "num_transferencia", precision = 18, scale = 0, nullable = false)
    private BigDecimal numTransferencia;
    @Column(name = "qde_acao", precision = 18, scale = 0)
    private BigDecimal qdeAcao;
    @Column(name = "qde_proposta", precision = 18, scale = 0)
    private BigDecimal qdeProposta;
    @Column(name = "qde_receb", precision = 18, scale = 0)
    private BigDecimal qdeReceb;
    @Column(name = "perc_partic", precision = 18, scale = 4)
    private BigDecimal percPartic;
    @Basic(optional = false)
    @NotNull
    @Column(name = "dat_cautela", nullable = false)
    @Temporal(TemporalType.DATE)
    private Date datCautela;
    @Basic(optional = false)
    @Column(name = "num_cautela", nullable = false, length = 30)
    private String numCautela;
    @Column(name = "id_cedente")
    private Integer idCedente;
    @Column(name = "num_certificado", precision = 18, scale = 0, nullable = false)
    private BigDecimal numCertificado;
    @JoinColumn(name = "id_cliente", referencedColumnName = "id_cliente", nullable = false)
    @ManyToOne(optional = false)
    private Cliente idCliente;
    @JoinColumn(name = "id_Cautela", referencedColumnName = "id_cautela", nullable = false)
    @OneToOne(optional = false)
    private Cautela idCautela;
    @JoinColumn(name = "id_anotacao", referencedColumnName = "id_anotacao", nullable = false)
    @ManyToOne(optional = false)
    @ConfiguraCampoAnnotation(tipo="int", pesquisa="idAnotacao", campo="id_anotacao", nomeTabela="cautela_acionista", nomeTabelJoin="cautela_acionista")
    private Anotacao idAnotacao;
    @JoinColumn(name = "id_livro", referencedColumnName = "id_livro", nullable = false)
    @ManyToOne(optional = false)
    private Livro idLivro;

    public CautelaAcionista() {
    }

    public CautelaAcionista(Integer idCautelaacionista) {
        this.idCautelaacionista = idCautelaacionista;
    }

    public Integer getIdCautelaacionista() {
        return idCautelaacionista;
    }

    public void setIdCautelaacionista(Integer idCautelaacionista) {
        this.idCautelaacionista = idCautelaacionista;
    }

    public BigDecimal getQdeAcao() {
        return qdeAcao;
    }

    public void setQdeAcao(BigDecimal qdeAcao) {
        this.qdeAcao = qdeAcao;
    }

    public Cliente getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(Cliente idCliente) {
        this.idCliente = idCliente;
    }

    public Cautela getIdCautela() {
        return idCautela;
    }

    public void setIdCautela(Cautela idCautela) {
        this.idCautela = idCautela;
    }

    public Anotacao getIdAnotacao() {
        return idAnotacao;
    }

    public void setIdAnotacao(Anotacao idAnotacao) {
        this.idAnotacao = idAnotacao;
    }

    public BigDecimal getNumTransferencia() {
        return numTransferencia;
    }

    public void setNumTransferencia(BigDecimal numTransferencia) {
        this.numTransferencia = numTransferencia;
    }

    public Date getDatCautela() {
        return datCautela;
    }

    public void setDatCautela(Date datCautela) {
        this.datCautela = datCautela;
    }

    public Livro getIdLivro() {
        return idLivro;
    }

    public void setIdLivro(Livro idLivro) {
        this.idLivro = idLivro;
    }

    public String getNumCautela() {
        return numCautela;
    }

    public void setNumCautela(String numCautela) {
        this.numCautela = numCautela;
    }

    public BigDecimal getQdeProposta() {
        return qdeProposta;
    }

    public void setQdeProposta(BigDecimal qdeProposta) {
        this.qdeProposta = qdeProposta;
    }

    public BigDecimal getQdeReceb() {
        return qdeReceb;
    }

    public void setQdeReceb(BigDecimal qdeReceb) {
        this.qdeReceb = qdeReceb;
    }

    public Integer getIdCedente() {
        return idCedente;
    }

    public void setIdCedente(Integer idCedente) {
        this.idCedente = idCedente;
    }

    public BigDecimal getNumCertificado() {
        return numCertificado;
    }

    public void setNumCertificado(BigDecimal numCertificado) {
        this.numCertificado = numCertificado;
    }

    public BigDecimal getPercPartic() {
        return percPartic;
    }

    public void setPercPartic(BigDecimal percPartic) {
        this.percPartic = percPartic;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idCautelaacionista != null ? idCautelaacionista.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CautelaAcionista)) {
            return false;
        }
        CautelaAcionista other = (CautelaAcionista) object;
        if ((this.idCautelaacionista == null && other.idCautelaacionista != null) || (this.idCautelaacionista != null && !this.idCautelaacionista.equals(other.idCautelaacionista))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.jm.acionista.entity.CautelaAcionista[ idCautelaacionista=" + idCautelaacionista + " ]";
    }
    
}
